|
[13 May 2012|09:58am] |
function escapeHTML(s) {
return s.split('&').join('&').split('<').join('<').split('"').join('"');
} отсюда
|
|
| Пара говнокодиков |
[14 Apr 2012|10:00pm] |
Язык java, мне кажется Oracle надо выпустить java_dolbo_b edition потому что когда я увидел это
public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor extends AbstractPatternNodeVisitor { Я выпал в осадок, я понимаю, что переменную и метод можно называть до бесконечности, но где же разум господа разработчики ???
И второй пример, на сей раз VB человек просил помощи у меня на каком то форуме через ЛС.
Private Sub Form_Load() 'загрузка изображения Dim xx(), yy(), zz() Dim i As Integer Dim maxx As Integer Dim maxy As Integer Dim minx As Integer Dim miny As Integer xx = Array(0#, 1#, 1#, 11#, 11#, 6#, 11#, 1#, 1#, 11#, 11#) yy = Array(0#, 11#, 1#, 1#, 6#, 11#, 11#, 11#, 1#, 1#, 11#) zz = Array(0#, 11#, 11#, 11#, 11#, 11#, 6#, 1#, 1#, 1#, 1#) For i = 1 To 10 x(i) = xx(i) * 1.5 y(i) = yy(i) * 1.5 z(i) = zz(i) * 1.5 x0(i) = xx(i) y0(i) = yy(i) z0(i) = zz(i) Next maxx = 20 minx = -20 maxy = 20 miny = -20 Picture1.ScaleMode = 0 Picture1.Scale (minx, maxy)-(maxx, miny) Call Angle(210, 30) Call Cube(x(), y(), z()) sd = False End Sub Ну вот как ему помочь причем ведь он сам не знает что делает сие чудо мысли, выдать мыло и вервку ?
Конечно сори за тупой вопрос, но скорее это крик души, откуда такие нелюди разработчики берутся?
|
|
| Не замешивайте макароны в торт Наполеон |
[13 Mar 2012|03:18am] |
В моем бложике любителей подобного мало, но тут, думаю, люди оценят
SELECT distinct
Register.ID,
Register.Deleted,
case
when Register.fitted = 0 then '<b><i>'+Register.name+'</i></b>'
else '<b>'+Register.name+'</b>' end
when Register.fitted = 0 then '<i>'+Register.name+'</i>'
else Register.name end +
CASE
WHEN Register.Deleted = 1 THEN '<font color = red>*</font>'
ELSE '' END as name,
Register.Description,
....
FROM Register
LEFT JOIN .........
вот такой замечательный проект мне достался в наследство. И в довесок к увиденному, это все на VB.Net 1.1 (да, недавно выпустили 4.5 и сейчас 2012 год)
|
|
| Это ваше похапе |
[11 Mar 2012|09:48pm] |
if (curlstream->readbuffer.writepos == 0) { while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform(curlstream->multi, &curlstream->pending)); }
Какой-такой select()? Будем читать, пока не прочтётся! И пофиг на все ваши процессорные ресурсы.
Источник: ext/curl/streams.c
|
|
| bdsm objective-c |
[28 Feb 2012|01:54pm] |
Этот шедевр целен и неразрывен. Для полноты впечатлений - смотреть в редакторе с отключённым переносом строк. http://pastebin.com/UaTdN6K2
Сюда требовалось добавить новый пункт меню. К счастью, этот код 2 года не используется, проще было переписать с нуля.
|
|
| reliable replace |
[27 Feb 2012|09:50am] |
http://donottrack.us/application:
$DoNotTrackHeader = "DNT"; $phpHeader = "HTTP_" . strtoupper(str_replace("-", "_", $DoNotTrackHeader));
|
|
| Sigh, IP_RECVERR for raw socket was broken |
[17 Feb 2012|06:53pm] |
Нет ничего более постоянного, чем временные допущения.
За время, прошедшее с момента выхода третьей версии ядра Linux, все уже освоились с ошибками типа configure: error: --with-linux argument '3.0.0-15-generic' is neither a kernel version string nor a full path, однако предположение, что версия ядра обязательно должна начинаться с "2.", до сих пор вызывают смех и иронию. Определять версию ядра нужно так, как это делают настоящие, опытные программисты. Например, авторы утилиты ping.
$ ping xxx PING xxx (209.x.x.x) from 192.168.1.15 : 56(84) bytes of data. WARNING: kernel is not very fresh, upgrade is recommended. From xxx (209.x.x.x): icmp_seq=2 Destination Net Unreachable From xxx (209.x.x.x): icmp_seq=3 Destination Net Unreachable ^C $
Уау, пингу не нравится моё ядро! Но почему? Давайте посмотрим:
error_pkt = (icp->type != ICMP_REDIRECT &&
icp->type != ICMP_SOURCE_QUENCH);
if (error_pkt) {
acknowledge(ntohs(icp1->un.echo.sequence));
if (working_recverr) {
return 0;
} else {
static int once;
/* Sigh, IP_RECVERR for raw socket
* was broken until 2.4.9. So, we ignore
* the first error and warn on the second.
*/
if (once++ == 1)
fprintf(stderr, "\rWARNING: kernel is not very fresh, upgrade is recommended.\n");
if (once == 1)
return 0;
}
}
Некогда ping'у нужно было выставлять working_recverr в 0 при версии Linux до 2.4.9. При этом авторы iputils, как настоящие джедаи, решили не полагаться на хипстерские linux/version.h и uname(2) и написали свой костыль для определения версии ядра и его способностей. Прошло 11 лет, костыль слегка покривел, и ping заботливо говорит мне, что моё ядро 3.2.6 не очень свежее, и надо бы обновиться до 2.4.9.
Спасибо ему.
|
|
|
[15 Feb 2012|02:30pm] |
if(1) { if(0) { ... } }
|
|
|
[07 Feb 2012|12:49pm] |
|
static int GetNumberOfDoubleElements(){return (17 - 2);}
|
|
| Над boolean разработчики могут издеваться бесконечно |
[01 Feb 2012|09:30pm] |
boolean stringtoBoolean(String str) { if (str.equalsIgnoreCase("TRUE")) { return true; } return false; }
LoaderUtil.setAnonimized(arg1, arg2, Boolean.toString(translateBoolean(rowMap.get(key1)))); LoaderUtil.setAnonimized(arg1, arg2, Boolean.toString(translateBoolean(rowMap.get(key1)))); ... protected boolean translateBoolean(String b){ if (b == null || b.trim().equalsIgnoreCase("")) return false; if(b.trim().equalsIgnoreCase("false")) return false; return true; }
|
|
|
[17 Jan 2012|11:55am] |
s=head;
p=head;
while(s!=null) {
if (...) {
p.next=null;
free(head);
if (s==head) head=null;
else head=s;
break;
}
p=s;
s=s.next;
}
|
|
| Нашел в коде юного падавана |
[02 Dec 2011|11:10am] |
|
Debug.Assert(currentAssemblyDirectory != null, string.Format("currentAss{0}emblyDirectory != null", "ARG0"));
|
|
| basename, угу |
[25 Nov 2011|02:22pm] |
В оригинале было на самописном языке, я перевел на Java для понятности:
String fileName = "C:\\Test\\Filename.zip";
String[] tmp = fileName.split("\\\\");
for (String s : tmp) {
fileName = s;
}
tmp = fileName.split("\\.");
for (String s : tmp) {
fileName = s;
break;
}
System.out.println(fileName);
|
|
| PL-SQL |
[12 Nov 2011|04:17pm] |
Реальный код в одной разработке, известная на всю страну компания
procedure do_commit is begin commit; end;
/**/
WTF ?
|
|
| Ну, раз уж у нас круглая дата... |
[11 Nov 2011|11:11am] |
11 ноября самое время поговорить о времени. Вот какой WTF у меня недавно приключился.
// C# Code (modified by hand)
class Search
{
DateTime _refDate;
public Search(DateTime refDate) { _refDate = refDate.ToUniversalTime(); }
public bool InRange( DateTime date, int hoursAgo )
{
return (date.ToUniversalTime() - _refDate).TotalHours <= hoursAgo;
}
}
// Unit test
[TestMethod]
public void TestInRange()
{
var date = DateTime.Now;
var search = new Search(date);
var oldDate = date.AddHours(-99.5);
Assert.IsTrue( search.InRange( oldDate, 100 ) );
}
Вдруг, откуда не возьмись, маленький комарик получаю в понедельник утром сообщение: build failed, test did not pass. А раньше почти год все нормально было. :) Люди, не используйте DateTime.Now в тестах!
Hint: в прошедший выходной в США перевели часы на час вперед.
|
|
| logrotate.c |
[31 Oct 2011|07:00pm] |
Задача: если в конфигурации имеется команда sharedscripts, то нужно обработать все файлы из массива rotNames в цикле и в конце вызвать, скажем, postrotate-скрипт. Иначе -- вызывать postrotate-скрипт для каждого обрабатываемого файла.
Реализация (авторские отступы сохранены).
for (j = 0;
(!(log->flags & LOG_FLAG_SHAREDSCRIPTS) && j < log->numFiles)
|| ((log->flags & LOG_FLAG_SHAREDSCRIPTS) && j < 1); j++) {
for (i = j;
((log->flags & LOG_FLAG_SHAREDSCRIPTS) && i < log->numFiles)
|| (!(log->flags & LOG_FLAG_SHAREDSCRIPTS) && i == j); i++) {
logHasErrors[i] |=
rotateSingleLog(log, i, state[i], rotNames[i]);
}
if (! ( (logHasErrors[j] && !(log->flags & LOG_FLAG_SHAREDSCRIPTS))
|| (hasErrors && (log->flags & LOG_FLAG_SHAREDSCRIPTS)) ) ) {
runScript(log->flags & LOG_FLAG_SHAREDSCRIPTS ? log->pattern : log->files[j], log->post);
}
}
|
|
|
[19 Sep 2011|06:44pm] |
public bool IsCopyOrMovePossible(...) { int newParentLevel = ...; int sourceSubtreeDeep = ...; int finalLevel = newParentLevel + sourceSubtreeDeep; return finalLevel < Int32.MaxValue; }
|
|
|
[13 Sep 2011|02:36pm] |
Код ниже используется в процедуре сравнения для сортировки std::sortом
static int ByValue(const double* rec1, const double* rec2) { double ret = *rec1 - *rec2; return ret ? 0 : ret > 0 ? 1 : -1; }
Найдите WTF
|
|
| Elegant php code |
[10 Sep 2011|04:17pm] |
У меня есть маленький, но рекордный проект по количеству php говнокода ( 130 тыс строк). Его можно постить сюда целиком (только тошнить быстро начинает), но вот этот вот кусок отличается даже на общем фоне: ( Warning! php-code ) Страна должны знать своих героев: Jaladhi Triverdi, компания Indianic. Главное не сразу понятно как это переписать чтобы не так через жопу было. Update: Помимо попытки сделать локализацию через жопу, все циклы занимаются заменой HOME/AWAY/DRAFT в строке на соответствующие имена. Секрет спрятан в $final_bet_group = implode('#',$final_bet_group); То есть всем bet_group приснился explode, после чего мы их попарно сравнили и склеили массив в строку. Эквивалентный по функциональности питоновый код ( вместо циклов): bet_group=bet['bet_group'].replace("Away",away_bet['bet_name']) bet_group=bet['bet_group'].replace("Home",home_bet['bet_name'])
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
|
|
|
|